home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
Systemmonitors
/
IdleLed
/
IdleLed.mod
< prev
next >
Wrap
Text File
|
1996-09-26
|
1KB
|
54 lines
MODULE IdleLed;
IMPORT
e:Exec,
h:Hardware,
y:SYSTEM,
c:Cia;
VAR
mei:e.Interrupt;
met:e.TaskPtr;
oldp:SHORTINT;
proc:e.PROC;
PROCEDURE IdleIrq;
(* $EntryExitCode- *)
(* $SaveAllRegs+ *)
BEGIN;
y.INLINE(
01039H,0BFH,0E001H,0200H,0FDH,013C0H,0BFH,0E001H,04E75H,0F14H,0H,03F2H);
END IdleIrq;
BEGIN;
proc:=IdleIrq;
c.base:=e.OpenResource(c.ciabName);
IF c.base=NIL THEN;HALT(0);END;
mei.node.type:=e.interrupt;
mei.node.pri:=127;
mei.node.name:=y.ADR("Idle-Led");
mei.data:=NIL;
mei.code:=proc;
IF c.AddICRVector(h.ta,y.ADR(mei))#NIL THEN END;
met:=e.FindTask(NIL);
oldp:=met.node.pri;
met.node.pri:=-127;
h.ciab.cra:=SHORTSET{};
h.ciab.talo:=058H;(*58*)
h.ciab.tahi:=01BH;(*1b*)
IF c.SetICR(SHORTSET{h.ta,h.setClr})#SHORTSET{} THEN END;
WHILE ~(12 IN met.sigRecvd) DO
h.ciab.cra:=SHORTSET{h.craStart,h.craLoad,h.craRunmode};
h.ciaa.pra:=h.ciaa.pra + SHORTSET{h.led};
END;
h.ciab.cra:=SHORTSET{};
IF c.SetICR(SHORTSET{h.ta})#SHORTSET{} THEN END;
c.RemICRVector(h.ta,y.ADR(mei));
met.node.pri:=oldp;
END IdleLed.